package com.aliwo.algorithm.easy;

/**
 * 就是输⼊整数，输出它的倒置。.
 * Input 123
 * output 321
 * 思路： 定义两个变量 temp(倒置后的数), pop(取余10得到的数)
 *       取余10 得到个位数，除以10 去掉个位数，判断是否溢出 int的范围 Integer.MAX_VALUE Integer.MIN_VALUE
 * @author Xu Yayuan
 * @date 2022/3/9
 */
public class ReverseNum {
    public static void main(String[] args) {
        Integer input = 2147483647;
        System.out.println("输入数字:" + input);
        Integer result = reverse(input);
        System.out.println("倒置后的数字: result:" + result);
    }

    public static Integer reverse(Integer num) {
        if (num == 0) {
            return num;
        }
        int temp = 0;
        while (num != 0) {
            // 一：取余10 得到个位数
            int pop = num % 10;
            // 二：除以10 去掉个位数
            num /= 10;
            if (temp > Integer.MAX_VALUE / 10 || temp < Integer.MIN_VALUE / 10) {
                return 0;
            }
            temp = temp * 10 + pop;
        }
        return temp;

    }
}
